package com.gitee.sop.sopauth.auth;


/**
 * 认证服务，需要自己实现
 *
 * @author admin
 */
public interface OAuth2Manager {

    /**
     * 添加 token
     *
     * @param authCode
     * @param accessToken
     * @param refreshToken
     * @param authUser
     */
    void addToken(String authCode, String accessToken, String refreshToken, OpenUser authUser);

    /**
     * 获取token
     *
     * @param authCode
     * @return
     */
    Token getTokenByAuthCode(String authCode);

    /**
     * 添加accessToken
     *
     * @param accessToken  token值
     * @param refreshToken refreshToken
     * @param authUser     用户
     */
    void addAccessToken(String accessToken, String refreshToken, OpenUser authUser);


    /**
     * 删除这个accessToken
     *
     * @param accessToken
     */
    void removeAccessToken(String accessToken);

    /**
     * 通过token获取用户信息
     *
     * @param accessToken
     * @return
     */
    OpenUser getOpenUserByAccessToken(String accessToken);
}